home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AOL File Library: 2,801 to 2,900
/
aol-file-protocol-4400-2801-to-2900.zip
/
AOLDLs
/
Modem_Serial Utilities
/
UARTFIX_Fix System Lockups With
/
UARTFIX.exe
/
README.TXT
next >
Wrap
Text File
|
1994-03-06
|
7KB
|
168 lines
UART.COM
Written by Bob Nick 6 March 94
This program provides status information and UART reset for 16550
type UARTs.
This program was developed to resolve the problem of com port lockups
have been occuring in Pentium based computers. The problem has been
traced to the Super I/O chip made by SMC that is part of the chipset
used on many of the early Pentium systems.
The com port lockup problem only occurs when using an external device,
such as a modem, that use programs that enable the 16550 mode of the
UART emulation. Internal modems should not be affected by the problem,
as they have a built in com port.
SYNTAX:
uart <port#>
Port number may be 1, 2, 3, or 4
Additional command line parameters.
Three options are provided for additional support.
1. s or S This option provides status information by checking the
registers but does not reset the UART.
2. q or Q This option bypasses the screen display of the registers.
3. r or R Reset and leave in 16450 mode
Examples:
uart 1 -- invoks the UART reset on port 1 and displays status info of the
registers prior to reset.
uart 1 s -- Reads the status registers of port 1, but does not reset the
UART.
uart 1 q -- Invokes the UART reset on port 1 but does not display the
register status.
Status Display:
The status display shows the following lines, preceeded by a two
character hex byte:
Interrupt ID Register
Interrupt Enable Register
Modem Control Register
Modem Status Register
Line Status Register
Line Control Register
Receive Byte Register
Resets:
The following is done during a modem reset:
1. FIFO control register is placed into 16450 mode (power up condition).
2. Modem control register is set to 0 (power up condition).
3. Read interrupt ident, modem status, and line status registers, which
clear the registers.
4. Read the receive data register.
5. Set the receive FIFO on, with a trigger level of 8 or optionally
leave in the 16450 mode.
Interpretation of status words.
The status words have the lsb on the right character. The following
is the meaning of the words.
Line Status Register
Bit
0 Data Ready
1 Overrun error
2 Parity Error
3 Framing Error
4 Break Interrupt (will normally be high)
5 Transmit Holding Register (high when ready to accept data)
6 Transmitter empty (High when both transmit FIFO and transmit shift
register are empty in the 16550 mode, or when transmit holding register
and transmit shift register are empty in 16450 mode.
7 0 in 16450 mode, set with an parity, framing, or break indication in
FIFO mode.
Interrupt ID Register
Bit
0 Low when interrupt is pending
1,2 Identifies the interrupt that is pending.
3 Low in 16450, High when timeout interrupt is pending in 16550.
4,5 Always low.
6,7 High when FIFO is enabled.
Modem Status Register
Bit
0 Delta Clear to send, changes when CTS input has changed.
1 Delta Data Set Ready, changes when DSR input has changed.
2 Trailing edge of Ring Indicator, RI has changed from high to low.
3 Delta Data Carrier Detect, changes when DCC has changed.
4 Bit complement to CTS.
5 Bit complement to DSR.
6 Bit complement of RI.
7 Bit complement of DCD.
Receive Byte Register--actual received data pending.
Line Control Register
Bit
0,1 Character length, both high for 8 bit.
2 Low for one stop bit, high for 2.
3 When high parity is enabled.
4 When high even parity is selected.
5 Stick parity bit.
6 Break Control bit.
7 Divisor Latch Access bit
Interrupt Enable Register
Bit
0 Enables Received Data available interrupt
1 Enables the transmitter holding register empty interrupt.
3 Enables the modem status interupt.
THe rest of the bits are always low.
Modem Control Register
Bit
0 DTR output.
1 RTS output.
2 Output 1 signal.
3 Output 2 signal.
4 Loopback for testing.
5-7 Low
Typical register values from my computer on internal Sportster modem.
Interrupt ID 01 for 16450, C1 for 16550 mode
Interrupt Enable Reg 00
Modem Control Register 00
Modem Status Register 30
Line Status Register 60
Line Control Register 03
Receive byte XX (Don't care)
This program may be placed into a batch file with the proper parameters,
called from the dos command line, or run from Windows from the DOS prompt,
using the run command, or by setting up a program item to call the
program with the desired parameters.
WARNING--If you have the ATI Graphics Ultra Pro, do not use the program
on COM4, as that will cause some problems with the 8514/A mode that
lies at that address.
I have included a .pif file, which needs to be changed with the pif editor
to reflect the correct path, and a batch file, which also needs to be
changed to reflect the correct path and port number. The pause in the
batch file will cause the program to stop in the full screen mode if you
are in windows and allow the viewing of the register values. That
statement may be removed.
The best use of the program is to run it right after each com session
before starting the next one. It will clear the 16550 and should keep
the port from locking up. I have also included an ICON for anyone
interested.
For information on membership in Gateway User's International, please
email Jack Ballinger at FPJA02A on Prodigy, or FPJA02A@Prodigy.com from
the Internet. Membership is open to all Gateway users by sending your
name and address to the above address.
For questions/comments regarding the program, UART.COM, email Bob Nick
at FPHE65C on Prodigy, or rnick@nyx10.cs.du.edu on the Internet or on
ILINK, Robert Nick in the Gateway conference. The program was written
assembly language and assembled on a Borland TASM 3.0 assembler.
This software has been successfully tested on three Pentium systems
known to have com port lockup problems.
****************************************************************************
* DISCLAIMER: This program is provided free of charge by Gateway User's *
* International and Bob Nick. The program is provided "as is" and is *
* to be used entirely at the user's risk. Bob Nick, GUI, and Gateway 2000 *
* are not responsible for any misuse or problems that may occur. This *
* program may be distributed freely but must include the readme.txt file *
* with this disclaimer. No person or organization my sell or charge for *
* this software. * *
****************************************************************************